#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=2e5+1000;
typedef long long LL;
inline LL read(){LL x=0,f=1;char ch=getchar();	while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
struct P{
    LL val,id;
}a[maxn];
bool cmp(P A,P B){
    return A.val<B.val;
}
LL sum[maxn];
bool check(LL x){
    if(sum[x]<a[x+1].val) return true;
    else return false;
}
int main(void)
{
  cin.tie(0);std::ios::sync_with_stdio(false);
  LL t;cin>>t;
  while(t--){
    LL n;cin>>n;
    for(LL i=0;i<n+10;i++){
        a[i].val=a[i].id=0;
    }
    for(LL i=1;i<=n;i++){
        cin>>a[i].val;a[i].id=i;
    }
    sort(a+1,a+1+n,cmp);
    for(LL i=1;i<=n;i++) sum[i]=sum[i-1]+a[i].val;
    vector<LL>v;
    v.push_back(a[n].id);
    for(LL i=n-1;i>=1;i--){
        if(sum[i]>=a[i+1].val){
            v.push_back(a[i].id);
        }
        else break;
    }
    sort(v.begin(),v.end());
    cout<<v.size()<<"\n";
    for(auto i:v){
        cout<<i<<" ";
    }
    cout<<"\n";
  }
return 0;
}
